0%

Jenkins Pipeline系列(一)—— 如何配置扩展共享库

什么是扩展共享库

在工作中,我们可能会有很多Maven项目的打包部署,还有Android、iOS等等的打包任务,虽然项目不同,但是打包、部署等等流程有很多相似之处,扩展库共享库允许我们抽象出很多公共部分,这样后续在新项目配置Pipeline的时候,会非常简便

准备

  • Jenkins:安装建议参考Jenkins安装
  • Gitlab:安装建议参考Gitlab安装
    为了方便,我这里都选择Docker安装,请大家自行配置Gitlab和Jenkins相关参数,比如Gitlab的SSH Key,Jenkins的凭证,这里不做赘述

扩展共享库配置

创建Gitlab Repo

  • 如图,我创建了名字是jenkins-shared-libraries的Git Repo

目录说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(root)
+- src # Groovy 源码文件
| +- com
| +- michael
| +- Bar.groovy # for org.foo.Bar class,主要是类库相关
+- vars # 变量和公共过程
| +- foo.groovy # 全局'foo'变量
| +- foo.txt # 'foo' 变量的帮助文档
+- resources # 资源文件 (external libraries only)
| +- com
| +- michael
| +- bar.json # static helper data for com.michael.Bar
| +- bar.shell # shell scripts
| +- package.json # 主要是Git commit message 插件
| +- commitlint.config.js # 主要是Git commit message 插件

配置Jenkins扩展共享库

  • 依次点击 系统管理 > 系统配置,找到Global Pipeline Libraries,如下图

编写Pipeline Demo

在git的jenkins-shared-libraries中的vars下面,新建log.groovy文件,并提交

1
2
3
4
5
6
7
8
9
10
11
def info(message) {
echo "INFO: ${message}"
}

def warning(message) {
echo "WARNING: ${message}"
}

def error(message) {
echo "ERROR: ${message}"
}

执行

  • 新建JOB
  • 执行JOB
    在Pipeline中引用共享库,并使用log.info的方法
  • 执行结果

PS:这里仅仅是最简单的Hello world的扩展库介绍,让大家有个感性认识,后面的文章,会针对Maven、Npm这些常见的打包部署方式的项目,进行Pipeline的扩展共享库的实践介绍。

Reference

Jenkins安装
Gitlab安装
Jenkins Shared-Libraries

微信关注我,及时接收最新技术文章